""" 设备基类 """

from abc import ABCMeta, abstractmethod
# metaclass=ABCMeta 只能被继承，不能实例化，实例会报错
# @abstractmethod 基类里的函数如果加上了这个装饰器，则调用基类时候必须有基类的所有方法，不然会报错


class DeviceMgr(metaclass=ABCMeta):
    """ 设备汇总 """

    @abstractmethod
    def enumerate(self):
        """ 枚举设备列表(程序初始化时需要重新获取设备列表) """
        pass

    @abstractmethod
    def active(self, device_id):
        """ 选择要使用的设备 """
        pass

    @abstractmethod
    def get_cur_device_id(self):
        """ 获取当前正在使用设备的id """
        pass
